Comment utiliser R sur les clusters de calcul ?
Posted on Tue 30 June 2020 in tutoriels • 2 min read
Comment utiliser R sur les clusters de calcul
Avec Guix
Rendre guix disponible
$ source /applis/site/guix-start.sh
Rechercher ‘r’ est voué à l’échec, il vaut mieux consulter directement la liste des paquets disponibles via guix.
Le paquet s’appelle ‘r’ (en minuscule !) et les module sont nommés en général, ‘r-xxx’.
$ guix search r-dot
Ensuite, il suffit d’installer ce dont vous avez besoin :
$ guix install r r-hdf5r
# Verifications ...
$ guix package -I
r 4.0.0 out /gnu/store/kbbk0c2wpzxdkqcmgb879fd29zhrlral-r-4.0.0
r-hdf5r 1.3.2 out /gnu/store/s3adanhj2y6dn190b9s3938ihhs037il-r-hdf5r-1.3.2
‘r’ pour le nom du paquet guix et ‘R’ pour l’exécution du logiciel.
$ which R
/home/perignon/.guix-profile/bin/R
$ R
R version 4.0.0 (2020-04-24) -- "Arbor Day"
Copyright (C) 2020 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)
...
Bien que déconseillée, la méthode standard d’installation de modules R reste disponible, sous réserve d’écrire dans un chemin local/personnel :
> install.packages("Rcmdr")
Installing package into '/gnu/store/jw0bphbi6dbcfa8m4yg3g0ksmca405bd-profile/site-library'
(as 'lib' is unspecified)
Warning in install.packages("Rcmdr") :
'lib = "/gnu/store/jw0bphbi6dbcfa8m4yg3g0ksmca405bd-profile/site-library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) yes
Would you like to create a personal library
...
Avec nix
source /applis/site/nix.sh
nix-env -f "<nixpkgs>" -iA rEnv
Et pour installer des packages R spécifiques, il faut éditer le fichier $HOME/.config/nixpkgs/config.nix et ajouter les modules nécessaires, par exemple :
{
packageOverrides = super: let self = super.pkgs; in
{
rEnv = super.rWrapper.override {
packages = with self.rPackages; [
wavelets
lpSolve
capushe
devtools
];
};
};
}
puis
nix-env -f "<nixpkgs>" -iA rEnv
Exemple de script oar
Script permettant l’exécution de commandes R décrites dans ‘/home/$USER/mes_simus/mon_calcul.R’
#!/bin/bash
# -- préciser un nom de projet --
#OAR --project NOMDUPROJET
# -- attribuer un nom au job
#OAR -n nom_du_job
# -- Demander des ressources et fixer un temps max
#OAR -l /core=1,walltime=36:00:00
# -- Charger l'environnement --
# - guix -
source /applis/site/guix-start.sh
# - ou nix -
# source /applis/site/nix.sh
# Lancement...
R CMD BATCH /home/$USER/mes_simus/mon_calcul.R
Warning
pensez à toujours utiliser des chemins absolus dans vos scripts oar (dans l’exemple, chemin absolu vers mon_calcul.R